<?php

namespace Aspic\Service;

/**
 * Represent a class that register itself as a service (for application services)
 * @author Mallory Dessaintes
 */
interface ServiceInterface {

	/**
	 * Should return null or empty array when no dependencies
	 * 
	 * @return Dependency[]
	 */
	public static function getServiceDependencies();

	/**
	 * Returning null here will means using class name as service name
	 */
	public static function getServiceName();

	/**
	 * Return the type of the service which is used for instanciation type
	 *
	 * @return string
	 */
	public static function getServiceType();

}
